
package Indexador;

import java.io.Serializable;
import java.util.ArrayList;

/**
 *
 * Clase correspondiente a una publicación en un foro de un tema sobre una
 * determinada serie. La serie será identificada por un título completo, que
 * será el indicado en el foro, y la URL de dicho tema. Almacenará un grupo de
 * descargas.
 *
 * @author Mikel&Igor
 */
public class Tema implements Serializable
{
    private String tituloCompleto; //Título del tema.
    private String tituloGeneral; //Título + temporada y demás datos
    private String URL; //URL del tema.
    private ArrayList<GrupoDescargas> gdList; //Grupo de descargas del tema.

    /**
     * Constructor por defecto.
     * @deprecated
     */
    public Tema(){ 
        gdList = new ArrayList<GrupoDescargas>();
    }

    /**
     * Tema almacenado desde un foro.
     *
     * @param tituloCompleto El título del tema.
     * @param URL URL En la que encontramos el tema.
     * @param gd Grupo de descargas obtenido del tema.
     */
    public Tema(String tituloCompleto, String URL, String tituloGeneral) {
        this.tituloCompleto = tituloCompleto;
        this.URL = URL;
        this.tituloGeneral = tituloGeneral;
        gdList= new ArrayList<GrupoDescargas>();
    }

    /**
     *
     * Setter. Configura la URL en la que se encontró el tema.
     *
     * @param URL La URL en la que se encontró.
     */
    public void setURL(String URL)
    {
        this.URL = URL;
    }

    /**
     *
     * Setter. Configura el título del tema.
     *
     * @param tituloCompleto El título.
     */
    public void setTituloCompleto(String tituloCompleto) {
        this.tituloCompleto = tituloCompleto;
    }


    /**
     *
     * Getter. Devuelve el título del tema, idéntico al obtenido en la URL
     * procesada.
     *
     * @return El título del tema.
     */
    public String getTituloCompleto()
    {
        return tituloCompleto;
    }

    /**
     * Getter. Devuelve el título con todos los datos: Título, temporada,
     * calidad, año...
     * @return
     */
    public String getTituloGeneral() {
        return tituloGeneral;
    }

    /**
     *
     * Getter. Devuelve la URL en la que podemos encontrar el tema original.
     *
     * @return URL original del tema.
     */
    public String getURL()
    {
        return URL;
    }

    /**
     *
     * Getter. Devuelve el grupo de descargas correspondiente a ese tema, es
     * decir, todos los grupos lógicos de enlaces.
     *
     * @return El grupo de descargas.
     */
    public ArrayList<GrupoDescargas> getGdList()
    {
        return gdList;
    }

    public void addGd(GrupoDescargas gd)
    {
        gdList.add(gd);
    }

    @Override
    public String toString() {
        int i;
        String returnValue="\n\n"+tituloGeneral+"\n"+URL;

        for(i=0;i<gdList.size();i++)
            returnValue+="\n"+gdList.get(i);

        return returnValue;
    }


}
